home *** CD-ROM | disk | FTP | other *** search
- 5 ONERRORGOTO2000
- 10 CLS:MODE8:DIM:a=1:x=0:y=0:c$=CHR$(5):p=2^31:q=2^32:r=0:x$=" 0":ERASEa$,b$:DIMa$(5),b$(15)
- 40 RESTORE70
- 50 FORi=0 TO5:READa$(i):NEXT
- 60 FORi=0 TO15:READb$(i):NEXT
- 70 DATABIN,DEC,HEX,AND,OR,XOR
- 80 DATA0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111
- 110 CLS:GOSUB300
- 120 z=LEN(x$):LOCATE0,0:IFz<17 THENPRINTc$;"[";a$(a);"] ";x$;ELSEPRINTc$;x$;
- 130 IFr>16 THENGOSUB300
- 140 r=z:LOCATE31,1
- 150 f=ASC(INPUT$(1)):IFf>96 THENf=f-32
- 160 IFf=73 THENGOSUB440:GOSUB290:GOTO330
- 170 IFf=66 ANDa<>0 THENa=0:GOTO330
- 180 IFf=68 ANDa<>1 THENa=1:GOTO330
- 190 IFf=72 ANDa<>2 THENa=2:GOTO330
- 200 IFf=42 ORf=43 ORf=45 ORf=47 THENGOSUB460:GOSUB290:GOTO800
- 210 IFf=65 ORf=79 ORf=88 THENGOSUB480:GOSUB290:GOTO900
- 220 IFf=76 ORf=82 THENGOSUB290:GOTO1040
- 230 IFf=78 ORf=67 THENGOSUB290:GOTO1100
- 240 IFf=46 THEN1200
- 250 GOTO150
- 270 LOCATE0,0:PRINTc$;"not found";:z$=INPUT$(1,@):RETURN
- 290 LOCATE0,0:PRINTc$;
- 300 LOCATE0,1:PRINT">I,B,D,H,+,-,*,/,A,O,X,N,C,L,R?";:RETURN
- 330 ONa+1 GOSUB360,350,360:GOTO120
- 350 x$=STR$(x):RETURN
- 360 IFx<0 THENt=x+q ELSEt=x
- 370 s=INT(t/65536):t=t-s*65536:x$=HEX$(s)+HEX$(t):IFa=2THENRETURN
- 380 y$="":FORi=1 TO8:y$=y$+b$(VAL("&H"+MID$(x$,i,1))):NEXT:x$=y$:RETURN
- 440 m$="Input data x (,B,D,H) ["+a$(a)+"] x ?":GOSUB550:x=y:RETURN
- 460 IFa>0 THENm$="["+a$(a)+"] " ELSEm$=""
- 465 m$=m$+x$+" "+CHR$(f)+" ":GOSUB550:RETURN
- 480 IFa>0 THENm$="["+a$(a)+"] " ELSEm$=""
- 485 m$=m$+x$+" "+a$(SGN(f-79)+4)+" ":GOSUB550:RETURN
- 550 CLS:PRINTm$;:INPUT@34;z$:LOCATE0,0:IFz$="" THENy=x:RETURN
- 560 l=LEN(z$):IFl>34 THENz$=LEFT$(z$,34)
- 570 d=a:c=l:IFl<2 THEN630
- 580 a$=MID$(z$,l-1,1)
- 590 IFa$="," ORa$="/" THENc=l-2:d=ASC(RIGHT$(z$,1)):z$=LEFT$(z$,c) ELSE630
- 600 IFd>96 THENd=d-32
- 610 IFd=66 ORd=68 ORd=72 THENd=SGN(d-68)+1 ELSE550
- 630 y=0:ONd+1 GOTO670,710,750
- 650 IFy<-p ORy>q-1 THEN550 ELSEIFy>=p THENy=y-q
- 660 RETURN
- 670 FORi=1TOc:z=ASC(MID$(z$,i,1))-48:IFz=0ORz=1THENy=y*2+z ELSE550
- 680 NEXT:GOTO650
- 710 e=0:w=0:FORi=1TOc:z=ASC(MID$(z$,i,1))
- 720 IF(z>47 ANDz<58) ORz=45 ORz=43 ORz=69 THEN730 ELSE550
- 730 IFw=0 THENy=INT(VALF(z$)):w=1:IFe=1 THEN550
- 740 NEXT:GOTO650
- 750 FORi=1 TOc:z=ASC(MID$(z$,i,1)):IFz>96 THENz=z-32
- 760 z=z-48:IFz<0 ORz>9 THENz=z-7:IFz<10 ORz>15 THEN550
- 770 y=y*16+z:NEXT:GOTO650
- 800 ONf-41 GOSUB840,850,,860,,870
- 810 IFw>=p ORw<-p THENGOSUB270:GOTO120 ELSEx=w:GOTO330
- 840 w=x*y:RETURN
- 850 w=x+y:RETURN
- 860 w=x-y:RETURN
- 870 w=FIX(x/y):RETURN
- 900 IFx<0 THENx=x+q
- 910 IFy<0 THENy=y+q
- 920 u=x-INT(x/65536)*65536:v=y-INT(y/65536)*65536:GOSUB950:z=u
- 930 u=INT(x/65536):v=INT(y/65536):GOSUB950:x=z+u*65536:IFx>=p THENx=x-q
- 940 GOTO330
- 950 IFu>32767 THENu=u-65536
- 960 IFv>32767 THENv=v-65536
- 970 IFf=65 THENu=u ANDv ELSEIFf=79 THENu=u ORv ELSEu=u XORv
- 980 IFu<0 THENu=u+65536
- 990 RETURN
- 1040 IFx<0 THENx=x+q
- 1050 IFf=76 THENx=x*2 ELSEx=INT(x/2)
- 1060 IFx>=q THENx=x-q
- 1070 IFx>=p THENx=x-q
- 1080 GOTO330
- 1100 IFf=78 THENx=-x-1 ELSEIFx>-p THENx=-x
- 1110 GOTO330
- 1200 CLS:GOSUB1300:i=2
- 1210 PRINT:ONi GOSUB1300,1310,1320,1330,1340,1350,1360,1370,1380,1390,1400,1410,1420,1430,1440
- 1220 z=ASC(INPUT$(1,@)):IFz=28 ORz=29 THEN110
- 1230 IFz<>13 ANDz<>30 ANDz<>31 THEN1220
- 1240 IF(z=30 ANDi=1) OR(z=31 ANDi=15) THEN1220
- 1250 IFz=30 THENi=i-2
- 1270 i=i+1:IFi<16 THEN1210
- 1280 GOTO110
- 1300 PRINT" I : input data";:RETURN
- 1310 PRINT" B : binary mode";:RETURN
- 1320 PRINT" D : decimal mode";:RETURN
- 1330 PRINT" H : hexadecimal mode";:RETURN
- 1340 PRINT" + : addition";:RETURN
- 1350 PRINT" - : subtraction";:RETURN
- 1360 PRINT" * : multiplication";:RETURN
- 1370 PRINT" / : division";:RETURN
- 1380 PRINT" A : AND";:RETURN
- 1390 PRINT" O : OR";:RETURN
- 1400 PRINT" X : XOR";:RETURN
- 1410 PRINT" N : NOT";:RETURN
- 1420 PRINT" C : 2's complement";:RETURN
- 1430 PRINT" L : bit shift left";:RETURN
- 1440 PRINT" R : bit shift right";:RETURN
- 2000 IFERR=1 THENCLS:ONERRORGOTO0
- 2010 IFERL>=840 ANDERR=<870 THENGOSUB270:RESUME120
- 2020 IFERL=730 THENe=1:RESUMENEXT
- 2030 GOSUB270:RESUME110
-